//////////////////////////////////////////////////////////////////////////////////////
//
//  Copyright (c) 2014-present, Egret Technology.
//  All rights reserved.
//  Redistribution and use in source and binary forms, with or without
//  modification, are permitted provided that the following conditions are met:
//
//     * Redistributions of source code must retain the above copyright
//       notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above copyright
//       notice, this list of conditions and the following disclaimer in the
//       documentation and/or other materials provided with the distribution.
//     * Neither the name of the Egret nor the
//       names of its contributors may be used to endorse or promote products
//       derived from this software without specific prior written permission.
//
//  THIS SOFTWARE IS PROVIDED BY EGRET AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
//  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
//  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
//  IN NO EVENT SHALL EGRET AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
//  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
//  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA,
//  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
//  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
//  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
//  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//////////////////////////////////////////////////////////////////////////////////////

class Main extends egret.DisplayObjectContainer {



    public constructor() {
        super();
        this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
    }

    private onAddToStage(event: egret.Event) {

        egret.lifecycle.addLifecycleListener((context) => {
            // custom lifecycle plugin

            context.onUpdate = () => {

            }
        })

        egret.lifecycle.onPause = () => {
            egret.ticker.pause();
        }

        egret.lifecycle.onResume = () => {
            egret.ticker.resume();
        }

        this.runGame().catch(e => {
            console.log(e);
        })



    }

    private async runGame() {
        await this.loadResource()
        this.createGameScene();
        // const result = await RES.getResAsync("description_json")
        // this.startAnimation(result);
        await platform.login();
        const userInfo = await platform.getUserInfo();
        console.log(userInfo);

    }

    private async loadResource() {
        try {
            const loadingView = new LoadingUI();
            this.stage.addChild(loadingView);
            await RES.loadConfig("resource/default.res.json", "resource/");
            await RES.loadGroup("preload", 0, loadingView);
            this.stage.removeChild(loadingView);
        }
        catch (e) {
            console.error(e);
        }
    }

    private textfield: egret.TextField;

    /**
     * 创建游戏场景
     * Create a game scene
     */
    private createGameScene() {
      let juxing:egret.Shape=new egret.Shape();
      juxing.graphics.beginFill(0x000000,1);
      juxing.graphics.drawRect(0,0,200,100);
      juxing.graphics.endFill();
      this.addChild(juxing);
      juxing.touchEnabled=true;
      juxing.x=0;
      juxing.y=0;
      juxing.addEventListener(egret.TouchEvent.TOUCH_BEGIN,dj,this)
      juxing.addEventListener(egret.TouchEvent.TOUCH_MOVE,tz,this)
    //  
      let a;
      let b;
        function dj(e:egret.TouchEvent){
            a=e.localX;
            b=e.localY;
        }
        function tz(e:egret.TouchEvent){
          //  juxing.anchorOffsetX=a;
           // juxing.anchorOffsetY=b;
            juxing.x+=e.localX-a;
            juxing.y+=e.localY-b;
            juxing.addEventListener(egret.TouchEvent.TOUCH_END,sk,this);
           
        }
        function sk(e:egret.TouchEvent){
           //  juxing.anchorOffsetX=a;
           //  juxing.anchorOffsetY=b;
             e.localX==a;
             e.localY==b;

        }
     
      //第一题
        // let zhixian:egret.Shape=new egret.Shape();
        // zhixian.graphics.lineStyle(5,0x00000)
        // zhixian.graphics.moveTo(0,400);
        // zhixian.graphics.lineTo(640,400);
        // zhixian.graphics.endFill();
        // this.addChild(zhixian);

        // let person:egret.Shape=new egret.Shape();
        // person.graphics.beginFill(0xff0000,1);
        // person.graphics.drawRect(0,0,100,100)
        // person.x=270;
        // person.y=300;
        // person.graphics.endFill();
        // this.addChild(person);

        // let xz:egret.Shape=new egret.Shape();
        // xz.graphics.beginFill(0x00ff00,1);
        // xz.graphics.drawRect(20,600,100,100)
        // xz.graphics.endFill();
        // this.addChild(xz);
        // xz.touchEnabled=true;
        // xz.addEventListener(egret.TouchEvent.TOUCH_TAP,left,this)
       
        // function left(){
        // person.x-=10;
        //  if(person.x<=0){
        //     person.x=0;
        //  }
        // }

        // let xy:egret.Shape=new egret.Shape();
        // xy.graphics.beginFill(0x0000ff,1);
        // xy.graphics.drawRect(520,600,100,100)
        // xy.graphics.endFill();
        // this.addChild(xy);
        // xy.touchEnabled=true;
        // xy.addEventListener(egret.TouchEvent.TOUCH_TAP,right,this)
       
        // function right(){
            
        // person.x+=10;
        //  if(person.x>540){
        //     person.x=540;
        //    // console.log(1);
        //  }

        // }
        // let kb:egret.Shape=new egret.Shape();
        // kb.graphics.beginFill(0x0000ff,0);
        // kb.graphics.drawRect(0,0,640,400)
        // kb.graphics.endFill();
        // this.addChild(kb);

        // kb.touchEnabled=true;
        // kb.addEventListener(egret.TouchEvent.TOUCH_TAP,pm,this)
        // function pm(e:egret.TouchEvent){
        //  //   console.log(1)
        //     if(e.stageX>=0 && e.stageX<320 && e.stageY>0 &&e.stageY<400){
        //          person.x-=10;
        //          if(person.x<=0){
        //          person.x=0;
        //       }
        //     } 
        //     if(e.stageX<=640 && e.stageX>=320 && e.stageY>0 &&e.stageY<400){
        //         person.x+=10;
        //         if(person.x>540){
        //         person.x=540;
        //    // console.log(1);
        //  }

        //    }  
        // }
    }
}